package com.yxw.live_vod_boot.entity;



import com.baomidou.mybatisplus.annotation.TableName;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.IdType;
import java.io.Serializable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import com.yxw.live_vod_boot.vo.LiveOnlineInRedisCacheVO;


@Data
@NoArgsConstructor
@TableName("yx_live_address")
//@EqualsAndHashCode(callSuper = true)
public class YxLiveAddressEntity   implements Serializable
{
    private static final long serialVersionUID = 91700560818613L;
    /*
    *主键id
    */
    @TableId(value = "live_id",type = IdType.UUID)
    @ApiModelProperty(value = "主键id")
    private String Id;
    /*
    *店铺内部id
    */
    @TableField("live_shop_id")
    @ApiModelProperty(value = "店铺内部id")
    private Long liveShopId;
    /*
    *店铺id
    */
    @TableField("shop_id")
    @ApiModelProperty(value = "店铺id")
    private String shopId;
    /*
    *申请id
    */
    @TableField("apply_id")
    @ApiModelProperty(value = "申请id")
    private String applyId;    
    /*
    *店铺员工Id
    */
    @TableField("shop_user_id")
    @ApiModelProperty(value = "店铺员工Id")
    private String shopUserId;
    /*
    *店铺员工姓名
    */
    @TableField("shop_user_name")
    @ApiModelProperty(value = "店铺员工姓名")
    private String shopUserName;    
    /*
    *颁发人Id
    */
    @TableField("create_user_id")
    @ApiModelProperty(value = "颁发人Id")
    private String createUserId;
    /*
    *拉流鉴权类别(1需要鉴权,0不需要鉴权),收费直播必须开启鉴权
    */
    @TableField("live_auth_type")
    @ApiModelProperty(value = "拉流鉴权类别(1需要鉴权,0不需要鉴权),收费直播必须开启鉴权")
    private Integer liveAuthType;
    /*
    *直播预计开始时间
    */
    @TableField("live_start_time")
    @ApiModelProperty(value = "直播预计开始时间")
    private Long liveStartTime;
    /*
    *直播预计结束时间
    */
    @TableField("live_end_time")
    @ApiModelProperty(value = "直播预计结束时间")
    private Long liveEndTime;
    /*
    *直播App名称
    */
    @TableField("live_app_name")
    @ApiModelProperty(value = "直播App名称")
    private String liveAppName;
    /*
    *直播流名称(构成规则:shopid_userid_uuid)
    */
    @TableField("live_stream_name")
    @ApiModelProperty(value = "直播流名称(构成规则:shopid_userid_uuid)")
    private String liveStreamName;
    /*
    *推流鉴权串
    */
    @TableField("push_auth")
    @ApiModelProperty(value = "推流鉴权串")
    private String pushAuth;
    /*
    *推流地址
    */
    @TableField("push_url")
    @ApiModelProperty(value = "推流地址")
    private String pushUrl;
    /*
    *拉流地址
    */
    @TableField("live_url")
    @ApiModelProperty(value = "拉流地址")
    private String liveUrl;
    /*
    *直播封面
    */
    @TableField("live_picture")
    @ApiModelProperty(value = "店铺头像")
    private String livePicture;
    /*
    *直播标签(比如:吃播,带货,唱歌)
    */
    @TableField("live_tag")
    @ApiModelProperty(value = "店铺名称")
    private String liveTag;
    /*
    *直播说明
    */
    @TableField("live_description")
    @ApiModelProperty(value = "直播说明")
    private String liveDescription;    
    /*
    *直播状态(0申请推流,1推流中,2推流中断,3店铺禁播,4直播结束,5直播异常)
    */
    @TableField("live_state")
    @ApiModelProperty(value = "直播状态(0申请推流,1推流中,2推流中断,3店铺禁播,4直播结束,5直播异常)")
    private Integer liveState;
    /*
    *是否存播(1保存,0不保存)
    */
    @TableField("live_will_save")
    @ApiModelProperty(value = "是否存播(1保存,0不保存)")
    private Integer liveWillSave;
    /*
    *是否收费(1付费观看，0免费观看)
    */
    @TableField("live_fees_type")
    @ApiModelProperty(value = "是否收费(1付费观看，0免费观看)")
    private Integer liveFeesType;

    /*
    *直播的时候是否允许用户连麦
    */
    @TableField("live_user_push")
    @ApiModelProperty(value = "直播的时候是否允许用户连麦")
    private Integer liveUserPush;


    /*
    *审核状态(1审核通过同意直播,0审核中,-1审核不通过)
    
    @TableField("live_apply_state")
    @ApiModelProperty(value = "审核状态(1审核通过同意直播,0审核中,-1审核不通过)")
    private Integer liveApplyState;*/
    /*
    *审核不通过的原因
   
    @TableField("not_allow_description")
    @ApiModelProperty(value = "审核不通过的原因")
    private String notAllowDescription;
     */
    /*
    *开始推流时间
    */
    @TableField("push_start_time")
    @ApiModelProperty(value = "开始推流时间")
    private Long pushStartTime;
    /*
    *结束推流时间
    */
    @TableField("push_end_time")
    @ApiModelProperty(value = "结束推流时间")
    private Long pushEndTime;
    /*
    *创建时间
    */
    @TableField("create_time")
    @ApiModelProperty(value = "创建时间")
    private java.util.Date createTime;
    /*
    *更新时间
    */
    @TableField("update_time")
    @ApiModelProperty(value = "更新时间")
    private java.util.Date updateTime;
    /*
    *开始推流服务器端时间
    */
    @TableField("push_start_server_time")
    @ApiModelProperty(value = "开始推流服务器端时间")
    private Long pushStartServerTime;
    /*
    *结束推流服务器端时间
    */
    @TableField("push_end_server_time")
    @ApiModelProperty(value = "结束推流服务器端时间")
    private Long pushEndServerTime;
    /*
    *总时长
    */
    @TableField("live_totall_duration")
    @ApiModelProperty(value = "总时长")
    private Long liveTotallDuration;
    /*
    *总推流
    */
    @TableField("live_totall_push_length")
    @ApiModelProperty(value = "总推流")
    private Long liveTotallPushLength;
    /*
    *直播预估费用
    */
    @TableField("live_valuation")
    @ApiModelProperty(value = "直播预估费用")
    private Integer liveValuation;
    /*
    *直播总订单数
    */
    @TableField("live_order_count")
    @ApiModelProperty(value = "直播总订单数")
    private Integer liveOrderCount;
    /*
    *直播总总金额
    */
    @TableField("live_order_total_fee")
    @ApiModelProperty(value = "直播总金额")
    private java.math.BigDecimal liveOrderTotalFee;
    /*
    *总拉流量
    */
    @TableField("watch_stream_length")
    @ApiModelProperty(value = "总拉流量")
    private Long watchStreamLength;
    /*
    *观众人数
    */
    @TableField("watch_number")
    @ApiModelProperty(value = "总观看次数")
    private Long watchNumber;    
    /*
    *观看总人数
    */
    @TableField("watch_user_count")
    @ApiModelProperty(value = "总观看人数")
    private Long watchUserCount;
    /*
    *在线人数峰值
    */
    @TableField("max_online_user_count")
    @ApiModelProperty(value = "在线人数峰值")
    private Long maxOnlineUserCount;
    /*
    *观看总时长
    */
    @TableField("watch_duration")
    @ApiModelProperty(value = "观看总时长")
    private Long watchDuration;
    /*
    *本次直播花费视频币
    */
    @TableField("live_fees")
    @ApiModelProperty(value = "本次直播花掉的费用")
    private Integer liveFees;
    /*
    *点赞人数
    */
    @TableField("like_number")
    @ApiModelProperty(value = "点赞人数")
    private Long likeNumber;
    /*
    *观众下单率
    */
    @TableField("watch_user_pay_rate")
    @ApiModelProperty(value = "观众下单率")
    private BigDecimal watchUserPayRate;
    /*
    *平均观看时长
    */
    @TableField("averag_watch_duration")
    @ApiModelProperty(value = "平均观看时长")
    private Long averagWatchDuration;
    /*
    *评论数量
    */
    @TableField("comment_number")
    @ApiModelProperty(value = "评论数量")
    private Long commentNumber;
    /*
    *评论人数
    */
    @TableField("comment_user_number")
    @ApiModelProperty(value = "评论人数")
    private Long commentUserNumber;
    /*
    *新增粉丝
    */
    @TableField("added_fans_number")
    @ApiModelProperty(value = "新增粉丝")
    private Long addedFansNumber;
    
    /*
    *产品数量
    */
    @TableField("product_number")
    @ApiModelProperty(value = "产品数量")
    private BigDecimal productNumber;    
    /*
    *处罚ID
    */
    @TableField("punish_id")
    @ApiModelProperty(value = "处罚ID")
    private String punishId;
    public LiveOnlineInRedisCacheVO ToLiveOnlineInRedisCacheVO()
    {
        LiveOnlineInRedisCacheVO oLiveOnlineInRedisCacheVO = new LiveOnlineInRedisCacheVO(); 
        oLiveOnlineInRedisCacheVO.setLiveId(Id);
        oLiveOnlineInRedisCacheVO.setLiveStreamName(liveStreamName);
        oLiveOnlineInRedisCacheVO.setLiveUrl(liveUrl);
        oLiveOnlineInRedisCacheVO.setLivePicture(livePicture);
        oLiveOnlineInRedisCacheVO.setLiveShopId(liveShopId);
        oLiveOnlineInRedisCacheVO.setLiveStartTime(liveStartTime);
        oLiveOnlineInRedisCacheVO.setLiveEndTime(liveEndTime);        
        oLiveOnlineInRedisCacheVO.setLiveDescription(liveDescription);
        return oLiveOnlineInRedisCacheVO;
    }
}

